As networks, and applications that utilize them, become more and more complex, so do potential problems associated with them. Analogously, as problems become potentially more and more complex, so do troubleshooting and remedying them.
For purposes of completeness, “network” as used herein generally refers to any group of two or more network devices, such as VoIP stations and computers, linked together. Common examples of networks include Local Area Networks, Wide Area Networks, Campus Area Networks, Home Area Networks and the global interconnection of computers, and other computing devices, commonly referred to as the Internet. As used herein, “VoIP station” generally refers to an IP telephone or other network element involved in the transport, creation, or termination of VoIP packets, while “computer” generally means a programmable machine, like a commercially available Personal Computer (PC). Further, by way of non-limiting example also, “application” as used herein generally refers to any program or group of programs designed for end users or for another program. Common examples of applications include database programs, word processors, and spreadsheets.
Internet Protocol (IP) networks use a particular format of packets, also called datagrams, and addressing scheme. IP uses data grams that include headers that provide information related to the data being transmitted. A network that utilizes IP is one example of a packet switched network. Each packet is transmitted individually and can even follow a different route to its destination. Once all the packets forming a message arrive at the destination, they are recompiled into the original message. Packet headers typically specify type of service (ToS), identification values, the allowability of datagram fragmenting, time to live values, protocol identifiers, source and destination addresses and padding, by way of non-limiting example only. This information may be used to route payload data across an IP network from a source IP address to a destination IP address.
The present invention will be described as it relates to VoIP systems and their underlying IP networks for purposes of explanation and by way of non-limiting example only. For purposes of completeness only, VoIP is a category of application that enables people to use packet switched networks as a transmission medium for telephone calls. Of course other applications, such as Fax over IP (FIP) may be suitable for use with the present invention also. Further, other types of networks and protocols may be suitable for use with the present invention as well.
In order to send voice over a packet network, one first digitizes the voice signal, using an Analog-to-Digital (A/D) converter and Pulse-Code Modulation (PCM) for example. By way of non-limiting example, commercially available computer sound cards or VoIP phones may be used to accomplish this digitization. The digitally sampled and quantized voice signal may then be routed across the network using conventional packet switching methodologies, such as those associated with IP. The received signal may then be reconstructed into analog form for listening. This is, in essence, the reverse of digitization, and may also be accomplished using a commercially available computer sound card or VoIP phone, by way of non-limiting example. For return voice communications, the same methodology may be used.
When users of VoIP stations experience problems, such as by experiencing audio distortion, a need exists for a method and system for rapid troubleshooting. For example, VoIP users typically want quality and reliability associated with Private Branch Exchange (PBX) systems. In other words, users typically want very few noticeable errors and low delays, such as with conventional telephone systems like PBX systems. With packetized voice however, each packet will typically arrive with a slightly different amount of delay, resulting in jitter. Jitter is a result of the different packet delays, or variations in packet inter-arrival time. In other words, if two packets are sent and received across a network, the difference in delay between the transmissions and receptions is jitter.
RTP timestamps and jitter buffers may be used to counter the deleterious effects of jitter. For purposes of completeness, “RTP” stands for Real Time Protocol, which is carried in a User Data gram Protocol (UDP). This protocol may be used to carry voice and video real-time media information in a VoIP system. A jitter buffer may be used to smooth out delay variability, in order to conceal jitter from end users. The timestamps may be used to determine what level of jitter exists, while the buffer serves to re-coordinate delivery of the packets and remove jitter.
Also, due to the nature of packet networks in general, some packets will inevitably include errors on arrival or not even arrive at all. While these circumstances are foreign to conventional PBX systems, packet loss is common in data networks, in general. This may also represent a significant problem with VoIP applications, where the occurrence of such losses of data may not be well tolerated.
It is believed that a technician attempting to duplicate the problematic VoIP behavior using a simple voice-file playback tool may fail to reliably reproduce the behavior or failure being complained of. In fact, it is believed that a technician attempting to remedy a problem reported with a VoIP system may wholly misdiagnose or fail to appreciate the actual problem being complained of, instead wasting valuable time performing otherwise unnecessary services.
It is thus desirable to provide a system and method for more rapidly troubleshooting networks and applications that use them, such as IP networks and VoIP systems, by providing a reliable method for reproducing a customer's experience, such as with a particular telephone call for example.